﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RentalSystem.Data.EF.Core
{
    //[Flags]
    //public enum TemplateFields : uint
    //{
    //    Field1 = 0x0001,
    //    Field2 = 0x0002,
    //    Field3 = 0x0004,
    //    Field4 = 0x0008,
    //    Field5 = 0x0010,
    //    Field6 = 0x0020,
    //    Field7 = 0x0040,
    //    Field8 = 0x0080,
    //    Field9 = 0x0100,
    //    Field10 = 0x0200,
    //    Field11 = 0x0400,
    //    Field12 = 0x0800,
    //    Field13 = 0x1000,
    //    Field14 = 0x2000,
    //    Field15 = 0x4000,

    //    All = 0xFFFF
    //}

    [Flags]
    public enum AgencyFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        City = 0x0004,
        Address = 0x0008,
        ZipCode = 0x0010,
        CreatedDate = 0x0020,
        IsActive = 0x0040,
        AgencyType = 0x0080,
        ImageFile = 0x0100,

        All = 0xFFFF
    }

    [Flags]
    public enum AgencyTypeFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        Description = 0x0004,

        All = 0xFFFF
    }

    [Flags]
    public enum CommentFields : uint
    {
        Guid = 0x0001,
        User = 0x0002,
        Movie = 0x0004,
        Text = 0x0008,
        QuoteComment = 0x0010,
        DateTime = 0x0020,

        All = 0xFFFF
    }

    [Flags]
    public enum CustomerFields : uint
    {
        Guid = 0x0001,
        Person = 0x0002,
        CustomerType = 0x0004,

        All = 0xFFFF
    }

    [Flags]
    public enum CustomerCardFields : uint
    {
        Guid = 0x0001,
        Customer = 0x0002,
        IsActive = 0x0004,
        Number = 0x0008,

        All = 0xFFFF
    }

    [Flags]
    public enum CustomerTypeFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        Description = 0x0004,
        Discount = 0x0008,

        All = 0xFFFF
    }

    [Flags]
    public enum DiscFields : uint
    {
        Guid = 0x0001,
        Movie = 0x0002,
        Count = 0x0004,
        DiscType = 0x0008,
        IsAvailable = 0x0010,
        IsHired = 0x0020,
        Agency = 0x0040,

        All = 0xFFFF
    }

    [Flags]
    public enum DiscTypeFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        Description = 0x0004,
        Value = 0x0008,

        All = 0xFFFF
    }

    [Flags]
    public enum HireFields : uint
    {
        Guid = 0x0001,
        User = 0x0002,
        Disc = 0x0004,
        SignupDate = 0x0008,
        GettingDate = 0x0010,
        PlanningReturningDate = 0x0020,
        ReturningDate = 0x0040,
        PlanningCost = 0x0080,
        IsPaidPlanningCost = 0x0100,
        LateReward = 0x0200,
        IsPaidLateReward = 0x0400,
        IsDiscReturned = 0x0800,

        All = 0xFFFF
    }

    [Flags]
    public enum MovieFields : uint
    {
        Guid = 0x0001,
        Title = 0x0002,
        Director = 0x0004,
        IssueDate = 0x0008,
        Publisher = 0x0010,
        Duration = 0x0020,
        ImageFile = 0x0040,
        Mark = 0x0080,

        All = 0xFFFF
    }

    [Flags]
    public enum MovieMovieKindFields : uint
    {
        Guid = 0x0001,
        Movie = 0x0002,
        MovieKindType = 0x0004,

        All = 0xFFFF
    }

    [Flags]
    public enum MovieKindFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        Description = 0x0004,
        Shortcut = 0x0008,

        All = 0xFFFF
    }

    [Flags]
    public enum PersonFields : uint
    {
        Guid = 0x0001,
        Customer = 0x0002,
        FirstName = 0x0004,
        LastName = 0x0008,
        Country = 0x0010,
        City = 0x0020,
        Adress = 0x0040,
        ZipCode = 0x0080,
        BirthDate = 0x0100,
        NationalIdentifier = 0x0200,

        All = 0xFFFF
    }

    [Flags]
    public enum UserFields : uint
    {
        Guid = 0x0001,
        Customer = 0x0002,
        Role = 0x0004,
        Email = 0x0008,
        PasswordHash = 0x0010,
        DateCreated = 0x0020,
        DisplayName = 0x0040,
        LastLoginIp = 0x0080,
        LastLoginDate = 0x0100,
        IsNewsletterActive = 0x0200,
        IsAccountActive = 0x0400,
        Agency = 0x0800,
        Worker = 0x1000,

        All = 0xFFFF
    }

    [Flags]
    public enum UserLogFields : uint
    {
        User = 0x0001,
        Date = 0x0002,
        UserLogType = 0x0004,
        Description = 0x0008,

        All = 0xFFFF
    }

    [Flags]
    public enum UserLogTypeFields : uint
    {
        Id = 0x0001,
        Name = 0x0002,
        Description = 0x0004,

        All = 0xFFFF
    }

    [Flags]
    public enum VoteFields : uint
    {
        User = 0x0001,
        Movie = 0x0002,
        Mark = 0x0004,

        All = 0xFFFF
    }

    [Flags]
    public enum WorkerFields : uint
    {
        Guid = 0x0001,
        EmploymentDate = 0x0002,

        All = 0xFFFF
    }

    [Flags]
    public enum PagesContentFields : uint
    {
        Id = 0x0001,
        Content = 0x0002,
        Title = 0x0004,

        All = 0xFFFF
    }
}
